#pragma once
#include <string>
#include <list>
#include <map>
#include "/home/reedja/CPPProjects/DungeonCrawlerCPP/include/tinystr.h"
#include "/home/reedja/CPPProjects/DungeonCrawlerCPP/include/tinyxml.h"

typedef std::map<std::string,std::string> MessageMap;

class WindowSettings;
class ConnectionSettings;

class WindowSettings
{
public:
	int x,y,w,h;
	std::string name;

	WindowSettings()
		: x(0), y(0), w(100), h(100), name("Untitled")
	{
	}

	WindowSettings(int x, int y, int w, int h, const std::string& name)
	{
		this->x=x;
		this->y=y;
		this->w=w;
		this->h=h;
		this->name=name;
	}
};

class ConnectionSettings
{
public:
	std::string ip;
	double timeout;
};

class AppSettings
{
    public:
        std::string m_name;
        MessageMap m_messages;
        std::list<WindowSettings> m_windows;
        ConnectionSettings m_connection;
        AppSettings() {}
        virtual ~AppSettings();
        void save(const char* pFilename);
        void load(const char* pFilename);
        void setDemoValues();
    protected:
    private:
};
